home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 007 / bmgrep.arc / MAKEDESC.C < prev    next >
Text File  |  1986-12-09  |  745b  |  27 lines

  1. #include <stdio.h>
  2. #include "bm.h"
  3. #include "extern.h"
  4. extern char * malloc();
  5. /* makes a pattern descriptor */
  6. struct PattDesc *MakeDesc(Pattern)
  7. char *Pattern;
  8. {
  9.     struct PattDesc *Desc;
  10.     Desc = (struct PattDesc *) malloc(sizeof(struct PattDesc));
  11.     if (!(Desc->Skip1 = (unsigned short int *)
  12.     malloc( sizeof(int) * (MAXCHAR + 1)))){
  13.         fprintf(stderr,"bm: can't allocate space\n");
  14.         exit(2);
  15.     } /* if */
  16.     if (!(Desc->Skip2 = (unsigned short int *)
  17.     malloc(sizeof(int) * strlen(Pattern)))){
  18.         fprintf(stderr,"bm: can't allocate space\n");
  19.         exit(2);
  20.     } /* if */
  21.     Desc->Pattern=Pattern;
  22.     Desc->PatLen = strlen(Desc->Pattern);
  23.     MakeSkip(Desc->Pattern,Desc->Skip1,
  24.     Desc->Skip2,Desc->PatLen);
  25.     return(Desc);
  26. } /* main */
  27.